﻿layui.use(function () {
    var table = layui.table;
    var layer = layui.layer;
    var form = layui.form;
    var $ = layui.$;
    var util = layui.util;
    var ids = []
    var token = localStorage.getItem("token");  // 获取token

    //显示表格
    function GetTableList(pageNum) {
        var dto = {
            Token: token,
            pageIndex: 1,
            pageSize: 100,
            OutCode: $("#StoreCode").val()
        };
        // 发送Ajax请求
        $.ajax({
            url: '/OutBound/GetOutShipList',  // 这里填上你的后端接口地址
            type: 'get',
            data: dto,
            success: function (response) {
                var res = JSON.parse(response);
                console.log(res);
                if (res != null) {
                    // 创建表格实例
                    table.render({
                        elem: '#ID-table-demo-search',
                        data: res.data.list,
                        page: true,
                        height: 600,
                        limit: 10,    // 每页显示多少条数据
                        limits: [10, 20, 30],  // 分页选择项
                        curr: pageNum,  // 当前页
                        total: res.data.lcount,  // 总记录数
                        loading: true, // 启用加载状态
                        cols: [[
                            { type: 'checkbox', fixed: true },
                            { field: 'outShipCode', title: '订单号', width: 150, sort: true, fixed: true },
                            { field: 'productsName', title: '产品名称', width: 120 },
                            { field: 'productsCode', title: '产品编号', width: 120, sort: true },
                            { field: 'batch', title: '批次', width: 120 },
                            { field: 'specs', title: '规格', width: 120 },
                            { field: 'outProuductNum', title: '数量', width: 120 },
                            {
                                field: 'outShipType', title: '出库类型', width: 120, templet: function (d) {
                                    if (d.outShipType == 1) {
                                        return "销售入库"
                                    } if (d.outShipType == 2) {
                                        return "销售出库"
                                    }
                                }
                            },
                            { field: 'clientName', title: '客户', width: 120 },
                            { field: 'makePerson', title: '制单人', width: 100 },
                            {
                                field: 'auditStart', title: '状态', width: 100, templet: function (d) {
                                    if (d.auditStart == 1) {
                                        return "待审核"
                                    } if (d.auditStart == 2) {
                                        return "审核通过"
                                    }
                                }
                                },
                            //{ field: 'sign', title: '审核人', width: 80 },
                            //{ field: 'sign', title: '审核时间', width: 80 },
                            {
                                field: '', title: '操作', sort: true, width: 150, templet: function (d) {
                                    return '<a  id="detail" data-Id="' + d.outShipId + '">查看 </a>' +
                                        ' <a  id="btnDel" data-Id="' + d.outShipId + '">删除</a>' +
                                        '<a lay-on="test-fan"   href="/OutBound/EditOutBound?ID=' + d.outShipId +'">编辑 </a>'
                                        /*+ '<a lay-on="test-ru">审核 </a>'*/
                                }
                            }
                        ]],
                        toolbar: '#toolbarDemo',
                        defaultToolbar: ['filter', 'print', 'exports']

                    });
                    // 渲染分页控件
                    var totalPages = Math.ceil(res.lcount / 10);  // 计算总页数
                    layui.laypage.render({
                        elem: 'pagination',
                        count: res.lcount,  // 总记录数
                        limit: 10,
                        curr: pageNum,
                        jump: function (obj, first) {
                            if (!first) {
                                Getprocurement(obj.curr);  // 不为第一次调用时，重新渲染表格
                            }
                        }
                    });
                }
            },
            error: function (xhr, status, error) {
                console.log('请求失败: ' + error);
            }
        });
    }

    // 初次加载表格数据
    GetTableList(1);

    // 查询按钮点击事件
    $('#search').click(function () {
        var code = $('#StoreCode').val();
        GetTableList({
            code: code,
        });  // 重置为第一页，并重新加载数据
    });

    // 获取选中数据按钮
    $('#getSelected').click(function () {
        var checkStatus = table.checkStatus('dataTable');
        var selectedData = checkStatus.data;  // 获取选中的数据
        console.log(selectedData);  // 打印选中的数据
    });

    //弹出层


    //查看详情


    $(document).on('click', "#detail", function () {

        var OutShipId = $(this).attr('data-Id');  // 获取按钮上设置的采购ID
    
        //打开弹框
        var index = layer.open({
            type: 1,
            area: ['900px', '500px'], // 宽高
            content: '<table style="width:650px;height:300px; margin-left:45px">' +
                '<tr>' +
                '<td>出库单号：<span id="outShipCode"></span></td>' +
                '<td>出库单类型：<span id="outShipType"></span></td>' +
                '<td>出库状态：<span id="auditStart"></span></td>' +
                '</tr>' +
                '<tr>' +
                '<td>客户编号：<span id="clientCode"></span></td>' +
                '<td>客户名称：<span id="clientName"></span></td>' +
                '<td>联系人：<span id="MarkTime1"></span></td>' +
                '</tr>' +
                '<tr>' +
                '<td>电话：<span id="ORremark"></span></td>' +
                '<td>制单人：<span id="makePerson"></span></td>' +
                '<td>制单时间: <span id="markTime"></span></td>' +
                '</tr>' +
                '<tr>' +
                '<td>备注：<span id="oRremark"></span></td>' +
                '<td>审核原因: <span id="auditResult"></span></td>' +
                '<td></td>' +
                '</tr>' +
                '</table>' +
                '<table class= "layui-table" id="outship-Id" >' +
                '</table>',
            success: function (lay, index) {
                form.render();
            }
        });

        $.ajax({
            url: '/OutBound/OutShipDetail',
            type: "get",
            data: {
                OutShipId: OutShipId,
                Token: token
            },
            success: (ress) => {
                var res = JSON.parse(ress);
                console.log(res);
                table.render({
                    elem: '#outship-Id',
                  
                    cols: [[
                        { field: 'productsCode', title: '产品编号', width: 150 },
                        { field: 'productsName', title: '产品名称', width: 150 },
                        { field: 'specs', title: '规格', width: 150 },
                        { field: 'batch', title: '批次', width: 150 },
                        { field: 'outPrice', title: '单价', width: 150 },
                        { field: 'outProuductNum', title: '出库数', width: 150 },
                        {
                            field: 'total', title: '总价', width: 150, templet: function (d) {
                                return d.outProuductNum * d.price;
                            }
                        },
                        {
                            field: 'binlocation',
                            title: '当前库位',
                            width: 120
                        },
                    ]],
                    data: res.data[0],  // 数据源
                });
                
                $(res.data).each(function () {
                    $("#outShipCode").text(this.outShipCode);
                    $("#outShipType").text(this.outShipType);
                    $("#auditStart").text(this.auditStart);
                    $("#clientCode").text(this.clientCode);
                    $("#clientName").text(this.clientName);
                    $("#ccontact").text(this.ccontact);
                    $("#vendorPhone").text(this.vendorPhone);
                    $("#MarkTime1").text(this.MarkTime1);
                    $("#ORremark").text(this.ORremark);
                    $("#ReasonForReview").text(this.ReasonForReview);
                    $("#oRremark").text(this.oRremark);
                    $("#auditResult").text(this.auditResult);

                })
            }
        })
    });







    var check = [];
    //获取复选框数据
    table.on('checkbox(OutText)', function (obj) {
        //console.log(obj)
        // console.log(obj.type); // 得到触发事件的类型：all（代表全选）| one（代表单选）
        //console.log(obj.checked); // 得到checkbox选中状态：true（选中）| false（取消）\
        //console.log(obj.othis); // 得到原始dom对象
        console.log(obj.data); //得到当前行数据

        // 获取所有选中的值
        var checkeddata = obj.data; // 获取所有选中的行数据
        if (obj.checked) {
            ids.push(checkeddata.outShipId);
            check.push(checkeddata);
        } else {
            var indextoremove = ids.indexof(checkeddata.outShipId);
            if (indextoremove !== -1) {
                ids.splice(indextoremove, 1);  // 从 ids 数组中移除
                check.splice(indextoremove, 1); // 从 check 数组中移除
            }
        }

        console.log(ids); // 打印所有选中的id
        console.log(check); // 打印所有选中的id
    });


    ///批量删除
    $('#myDelete').click(function () {
        if (ids.length == 0) {
            layer.msg('至少选一项', { icon: 2 });
            return;
        }
        var data = {
            ids: ids,
            DelName: "卢芳",
            Token: token
        }
        layer.confirm('确定删除吗？', { icon: 3 }, function () {
            $.ajax({
                url: '/OutBound/OutShipDel',
                type: 'Put',
                data: data,
                success: function (res) {
                    var resdata = JSON.parse(res);
                    if (resdata.data > 0) {
                        layer.msg('删除成功', { icon: 1 }, function () {
                            location.reload();
                        });

                    } else {
                        layer.msg('删除失败', { icon: 1 });
                    }
                }
            })
        }), function () {
            layer.msg('已取消', {
                time: 5000, //5s后自动关闭
                btn: ['确定'],
            });
        }

    })


    //单删
    $(document).on('click', '#btnDel', function (OutShipId) {
        var oid = $(this).attr('data-Id');
        var datas = {
            ids: oid,
            Token: token
        }
        layer.confirm('确定删除吗？', { icon: 3 }, function () {
            $.ajax({
                url: '/OutBound/OutShipDel', // 此处为静态模拟数据，实际使用时需换成真实接口
                type: 'Put',
                data: datas,
                success: function (res) {
                    var resdata = JSON.parse(res);
                    console.log(resdata);
                    if (resdata.data > 0) {
                        layer.msg('删除成功', { icon: 1 }, function () {
                            location.reload();
                        });

                    } else {
                        layer.msg('删除失败', { icon: 1 });
                    }
                }
            })
        }), function () {
            layer.msg('点击取消的回调');
        }
    })

});